package org.jeecg.modules.demo.com.kunpeng.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;

/**
 * @Description: 销售合同表
 * @Author: jeecg-boot
 * @Date:   2022-12-03
 * @Version: V1.0
 */
@ApiModel(value="sale_contract对象", description="销售合同表")
@Data
@TableName("sale_contract")
public class SaleContract implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private java.util.Date createTime;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private java.util.Date updateTime;
	/**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
	/**关联客户*/
	@Excel(name = "关联客户", width = 15)
    @ApiModelProperty(value = "关联客户")
    private String customerName;
	/**买方签约代表*/
	@Excel(name = "买方签约代表", width = 15)
    @ApiModelProperty(value = "买方签约代表")
    private String buyerRepresentative;
	/**卖方签约代表*/
	@Excel(name = "卖方签约代表", width = 15)
    @ApiModelProperty(value = "卖方签约代表")
    private String sellerRepresentative;
	/**合同开始时间*/
	@Excel(name = "合同开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "合同开始时间")
    private java.util.Date contractStartTime;
	/**合同结束时间*/
	@Excel(name = "合同结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "合同结束时间")
    private java.util.Date contractEndTime;
	/**合同名称*/
	@Excel(name = "合同名称", width = 15)
    @ApiModelProperty(value = "合同名称")
    private String contractName;
	/**合同编号*/
	@Excel(name = "合同编号", width = 15)
    @ApiModelProperty(value = "合同编号")
    private String contractId;
	/**合同性质*/
	@Excel(name = "合同性质", width = 15, dicCode = "contract_properties")
    @Dict(dicCode = "contract_properties")
    @ApiModelProperty(value = "合同性质")
    private String contractProperties;
	/**项目名称*/
	@Excel(name = "项目名称", width = 15)
    @ApiModelProperty(value = "项目名称")
    private String projectName;
	/**买方*/
	@Excel(name = "买方", width = 15)
    @ApiModelProperty(value = "买方")
    private String buyer;
	/**卖方*/
	@Excel(name = "卖方", width = 15)
    @ApiModelProperty(value = "卖方")
    private String seller;
	/**保管人*/
	@Excel(name = "保管人", width = 15)
    @ApiModelProperty(value = "保管人")
    private String managePerson;
	/**签订日期*/
	@Excel(name = "签订日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "签订日期")
    private java.util.Date signTime;
	/**状态*/
	@Excel(name = "状态", width = 15)
    @ApiModelProperty(value = "状态")
    private String status;
	/**合同金额*/
	@Excel(name = "合同金额", width = 15)
    @ApiModelProperty(value = "合同金额")
    private java.math.BigDecimal contractAmount;
	/**是否含税*/
	@Excel(name = "是否含税", width = 15)
    @ApiModelProperty(value = "是否含税")
    private String istax;
	/**税点*/
	@Excel(name = "税点", width = 15)
    @ApiModelProperty(value = "税点")
    private Double taxPoint;
	/**收款人全称*/
	@Excel(name = "收款人全称", width = 15)
    @ApiModelProperty(value = "收款人全称")
    private String fullNameOfPayee;
	/**税务登记账号*/
	@Excel(name = "税务登记账号", width = 15)
    @ApiModelProperty(value = "税务登记账号")
    private String taxRegistrationAccountNo;
	/**收款人账号*/
	@Excel(name = "收款人账号", width = 15)
    @ApiModelProperty(value = "收款人账号")
    private String collectionAccountNo;
	/**收款人开户行*/
	@Excel(name = "收款人开户行", width = 15)
    @ApiModelProperty(value = "收款人开户行")
    private String bankOfDeposit;
	/**附件*/
	@Excel(name = "附件", width = 15)
    @ApiModelProperty(value = "附件")
    private String enclosure;
	/**合同类别*/
	@Excel(name = "合同类别", width = 15)
    @ApiModelProperty(value = "合同类别")
    private String contractType;
}
